function myPromisify(fn) {
  return function (...args) {
    // arguments
    return new Promise((resolve, reject) => {
      if (typeof args[1] == "undefined" || args[1] == "utf-8") {
        // 读取文件
        fn(...args, (err, data) => {
          if (err) {
            reject(err);
          } else {
            if (args[1] == "utf-8") {
              resolve(data.toString());
            } else {
              resolve(data);
            }
          }
        });
      } else {
        // 写入文件
        fn(...args, (err) => {
          if (err) {
            reject(err);
          } else {
            resolve();
          }
        });
      }
    });
  };
}

module.exports = {
  myPromisify,
};
